![AWS Elemental MediaConnect へのプライベートな動画配信を AWS Client VPN を使って実現してみた](https://devio2023-media.developers.io/wp-content/uploads/2019/05/aws-elemental-mediaconnect.png)
AWS Elemental MediaConnect へのプライベートな動画配信を AWS Client VPN を使って実現してみた
こんにちは、大前です。
AWS Elemental MediaConnect(以下 MediaConnect) は映像ソースをインターネットではなく VPC からも受け付ける事が出来ます。
そのため、AWS Direct Connect(以下 Direct Connect) 等と組み合わせる事によってプライベートなネットワークを経由した動画配信を行う事が可能になります。
一方で、一般に Direct Connect を気軽に使用する事は難しいです。そのため、今回は AWS Client VPN(以下 Client VPN) を使用してお手軽にプライベートな動画配信を行ってみようと思います。
構成
以下の構成で MediaConnect にプライベートな動画配信を行います。
Client VPN を使用する事で MediaConnect によって作成される VPC Interface(ENI)に対して通信を行う事が出来る様になるため、これを利用します。
サブネットは、Client VPN のターゲットサブネットと MediaConnect の VPC Interface 用サブネットの 2つを用意します。
やってみた
以下手順で進めていきます。VPC や サブネットは作成済みの前提で進めます。
- Client VPN の設定
- MediaConnect の設定
- 配信実施
1. ClientVPN の設定
Client VPN の設定手順は弊社ブログにも数多く上がっているため、細かい説明は省略します。
今回は下記ブログを参考に Client VPN の設定を行い、相互認証を利用して Client VPN に接続します。
相互認証用のキーの準備 〜 ACM への登録
以下の手順を実施します。
- [AWS]踏み台をワンチャンなくせる!?VPC接続にClient VPNを使ってみよう - 相互認証用のキーの準備
- [AWS]踏み台をワンチャンなくせる!?VPC接続にClient VPNを使ってみよう - キーをACMに登録する
クライアント VPC エンドポイントの作成
基本的には以下手順を実施します。
「その他のオプションパラメータ」の部分で VPC ID を選択する項目があるので、ここで今回使用する VPC を選択します。
セキュリティグループはとりあえずデフォルトで OK です。
サブネットの関連付けでは、以下それぞれを指定します。
- VPC ... 使用する VPC
- 関連付けるサブネット ... Client VPN のターゲットサブネットとなるサブネット
Client VPN 用のセキュリティグループ作成
Client VPN 用のセキュリティグループを作成します。
インバウンドルールは特に不要で、アウトバウンドルールでアウトバウンド通信が出来る形になっていれば OK です。
Client VPN にセキュリティグループの適用
上記にて作成したセキュリティグループを Client VPN に適用します。
先ほど作成したセキュリティグループを選択し、適用します。
クライアントアクセスを承認する
以下手順を実施します。「アクセスを有効にする送信先ネット」には今回使用する VPC の CIDR を入力します。
[AWS]踏み台をワンチャンなくせる!?VPC接続にClient VPNを使ってみよう - クライアントアクセスを承認する
Client VPN の設定は以上になります。
2. MediaConnect の設定
続いて、MediaConnect の設定を行います。
MediaConnect VPC interface 用セキュリティグループの作成
MediaConnect が作成する ENI にアタッチされるセキュリティグループを先に作成しておきます。
Client VPN にアタッチしているセキュリティグループからのトラフィックを許可する様にインバウンドルールを設定しておきます。
MediaConnect フローと VPC interface の作成
MediaConnect コンソール画面からフローの作成を開き、Name を入力したら「Add VPC interface」をクリックします。
VPC interface の設定画面が開くので、下記項目を入力します。
- Name ... 任意
- Role ARN ... 信頼関係に「mediaconnect.amazonaws.com」が指定された、VPC interface 作成に必要なロール
- このロールには以下の権限がアタッチされている必要があります
- ec2:CreateNetworkInterface
- ec2:CreateNetworkInterfacePermission
- ec2:DeleteNetworkInterface
- ec2:DescribeSubnets
- このロールには以下の権限がアタッチされている必要があります
- VPC ... 今回使用する VPC
- サブネット ... MediaConnect の VPC interface を作成するサブネット
- Security groups ... 上記で作成したセキュリティグループを指定
Source には以下を設定し、「Create flow」をクリックします。
- Source Type ... VPC source
- Name ... 任意
- Protocol ... RTP
- Inboud port ... 任意
- VPC interface name ... 上記で作成した VPC interface
フローが作成されたら、Sources 欄にある「Inbound IP address」が 指定したサブネットに属するプライベート IP である事を確認します。
配信はこの IP に対して行うため、メモしておきましょう。
3. 配信実施
それでは配信を行なっていきます。
Client VPN に接続
まずは作成した Client VPN へ接続します。接続手順については以下を参考に実施します。
[AWS]踏み台をワンチャンなくせる!?VPC接続にClient VPNを使ってみよう - VPN接続してみる
MediaConnect フローの開始
続いて、MediaConnect のフローを開始させます。
作成したフロー画面より、「Start」をクリックすれば OK です。
MediaConnect への配信開始
最後に、MediaConnect に対して配信を行います。
MediaConnect への配信は、以下ブログを参考に VLC MediaPlayer を使用します。
以下に従って VLC MediaPlayer の設定を行い、配信を開始します。
- VLC Media Player を使った AWS Elemental MediaConnect への動画配信(RTP)をやってみた - 4. VLC MediaPlayer の設定
- VLC Media Player を使った AWS Elemental MediaConnect への動画配信(RTP)をやってみた - 5. 配信実施
VLC MediaPlayer のストリーム先は、先ほど確認したプライベート IP アドレスになります。
MediaConnect にストリームが来ている事を確認
MediaConnect のフローを開き、画面下部の「Source health metrics」のグラフを確認する事で映像が届いているか確認する事ができます。
配信開始後に少し待っているとグラフの値が上昇しました。問題なく MediaConnect に Client VPN 経由で映像が送れています!
おわりに
AWS Client VPN を使用して、AWS Elemental MediaConnect に対してプライベートな動画配信を行なってみました。
配信するデータ保護を行う必要がある場合などは Client VPN を使うのも一手ではないでしょうか。
以上、AWS 事業本部の大前でした。